Data is a pervasive concept. Networks carry data comprising anything from voice communication, to video images, to high-level calculation results. Transfer of data across networks has supplanted the use of common office fixtures such as the telephone and fax machine. Networks have become the backbone of business communication.
The database paradigm has been the basis of a revolutionary concept in computer program development, that is the use of packaged groups of executable code and accompanying data. To invoke an object is to perform an operation on it, the invocation resulting in another data object. Unlike the “series of verbs” programming style, Object Oriented Programming (“OOP”) is organized around “Objects” rather than “Actions”—data rather than logic.
Historically, computer programs have manipulated data according to a paradigm that views the logical procedure that it takes to input data, process it, and produce output data. Programming, then, became a long vulnerable chain of interdependent manipulations of the data. Changing a single step often required re-drafting elaborate subroutines. Object oriented programming tends to package objects by defining the data it contains and any logical sequences that can manipulate that data.
Common Object Request Broker Architecture (CORBA) takes the logic one step further. If every computer platform in a network is standardized by a series of software drivers such that a logical operation performed on an object has the same result regardless of which platform performs the manipulation, tying multiple platforms onto a single network is easily accomplished. In CORBA, standard off-the-shelf computer programs written in one language or another are wrapped with software making them objects. Invocation with a standard call to the wrapped software results in a standardized response, even if the program would not so respond in its native environment. While the program acts as though it is on its normal platform, it looks to the CORBA operating system like just another of its objects.
Objects exist on a network. The network is a series of computational platforms communicatively tied together. Invocation of an object on the network evokes the same response, regardless of which platform in the network invoked the object. Sending and receiving those objects on the network facilitates the use of those objects by any of the several platforms within the network. Thus, the CORBA standard allows for a powerful network with diverse platforms.
As defined, any platform in the network that has access to the objects can perform the manipulations of data. However, the network strength is also its weakness. Any platform on the network can invoke an object and either publish or modify the data it finds therein. In a closed network among trusted platforms, the need for security of the objects is not as pronounced as on an open network. To span great distances, to access the Internet, or to provide access at remote locations, a network must be open. The dichotomy is pervasive. The more accessible the network is, the more useful it is. To that end, a security system is necessary to protect the objects in an object-oriented network.
Where access to a network either cannot or is presumed not to be controlled reliably, an alternate means of securing data within the system is needed. There exists, therefore, an unmet need in the art for imposing security on an object-oriented network without impairing the network's accessibility.